home *** CD-ROM | disk | FTP | other *** search
/ The Programmer Disk / The Programmer Disk (Microforum).iso / xpro / tutor / pro30 / chap02.txt < prev    next >
Text File  |  1991-02-04  |  16KB  |  354 lines

  1.  
  2.  
  3.  
  4.                                                         Chapter 2
  5.                                         GETTING STARTED IN PASCAL
  6.  
  7. YOUR FIRST PASCAL PROGRAM
  8. _________________________________________________________________
  9.  
  10. Lets get right into a program that really does    ===============
  11. nothing, but is an example of the most trivial      TRIVIAL.PAS
  12. Pascal program. Load Turbo Pascal, then load      ===============
  13. TRIVIAL.PAS into the integrated environment as
  14. a work file.  This assumes you have been
  15. successful in learning how to use the TURBO Pascal system.
  16.  
  17. You should now have the most trivial Pascal program possible on
  18. your display, and we can take a look at each part to define what
  19. it does.
  20.  
  21. The first line is required in the standard Pascal definition and
  22. is the program name which can be any name you like, as long as it
  23. follows the rules for an identifier given in the next paragraph. 
  24. It can have no blanks, otherwise it would be considered as two
  25. words and it would confuse the compiler.  The first word program
  26. is the first of the reserved words mentioned earlier and it is the
  27. indicator to the Pascal compiler that this is the name of the
  28. program.  Notice that the line ends with a semicolon.  Pascal uses
  29. the semicolon as a statement separator and although all statements
  30. do not actually end in a semicolon, most do, and the proper use of
  31. the semicolon will clear up later in your mind.  
  32.  
  33. TURBO Pascal does not require the program statement, but to remain
  34. compatible with standard Pascal, it will simply ignore the entire
  35. statement.  It is recommended that you include a program name both
  36. to aid your thinking in standard Pascal, and to add a little more
  37. indication of the purpose of each program.
  38.  
  39.  
  40. WHAT IS AN IDENTIFIER?
  41. _________________________________________________________________
  42.  
  43. All identifiers, including the program name, procedure and function
  44. names, type definitions, and constant and variable names, will
  45. start with an alphabetical character and be composed of any
  46. combination of alphabetic and numeric characters with no embedded
  47. blanks.  Upper or lower case alphabetic characters are not
  48. significant and may be mixed at will.  (If you find this definition
  49. confusing at this point, don't worry about it, it will be clear
  50. later but it must be defined early).  The standard definition of
  51. Pascal requires that any implementation (i.e. any compiler written
  52. by some company) must use at least 8 characters of the identifier
  53. as significant and may ignore the remaining characters if more than
  54. 8 are used.  Most implementations use far more than 8.  All
  55. versions of TURBO Pascal use 63 characters in an identifier as
  56. being significant.
  57.  
  58.                                                          Page 2-1
  59.  
  60.                             Chapter 2 - Getting Started in Pascal
  61.  
  62. Standard Pascal does not allow the use of underlines in an
  63. identifier but most implementations of Pascal allow its use after
  64. the first character.  All versions of TURBO Pascal compilers permit
  65. the use of the underline in an identifier, so it will be freely
  66. used throughout this tutorial.  The underline is used in the
  67. program name Puppy_Dog which should be on your display at this
  68. time.
  69.  
  70. Returning to the example program, line 2 is a blank line which is
  71. ignored by all Pascal compilers.  More will be said about the blank
  72. line at the end of this chapter.
  73.  
  74.  
  75.  
  76. NOW FOR THE PROGRAM
  77. _________________________________________________________________
  78.  
  79. Lines 3 and 4 comprise the actual Pascal program, which in this
  80. case does absolutely nothing.  This is an illustration of the
  81. minimum Pascal program.  The two words begin and end are the next
  82. two reserved words we will consider.  Any logical grouping of
  83. Pascal code can be isolated by bracketing it with the two reserved
  84. words begin and end.  You will use this construct repeatedly as you
  85. write Pascal code so it is well to learn it thoroughly.  Code to
  86. be executed by conditional jumps will be bracketed by begin and
  87. end, as will code within a loop, and code contained within a
  88. subroutine (although they are called procedures in Pascal), and in
  89. many other ways.  In the present program, the begin and end are
  90. used to bracket the main program and every Pascal program will have
  91. the main program bracketed in this manner.  Because there is
  92. nothing to do in this program, there are no statements between the
  93. begin and end reserved words.
  94.  
  95. Finally, although it could be very easily overlooked, there is one
  96. more very important part of the program, the period following the
  97. reserved word end.  The period is the signal to the compiler that
  98. it has reached the end of the executable statements and is
  99. therefore finished compiling.  Every Pascal program will have one,
  100. and only one period in it and that one period will be at the end
  101. of the program.  I must qualify that statement in this regard, a
  102. period can be used in comments, and in text to be output.  In fact
  103. there are some data formats that require using a period as part of
  104. their structure.  Think of a Pascal program as one long sentence
  105. with one period at the end.  Ignore lines 9 through 13 for a few
  106. minutes and we will describe them fully later.
  107.  
  108. That should pretty well describe our first program.  Now it is time
  109. for you to compile and run it.  Hit <alt> r to compile and run the
  110. program, then <alt> F5 to view the result of execution.  Since this
  111. program doesn't do anything, it is not very interesting, so let's
  112. look at one that does something.
  113.  
  114.  
  115.  
  116.  
  117.                                                          Page 2-2
  118.  
  119.                             Chapter 2 - Getting Started in Pascal
  120.  
  121.  
  122. A PROGRAM THAT DOES SOMETHING
  123. _________________________________________________________________
  124.  
  125. Load the Pascal program WRITESM.PAS and view it   ===============
  126. on your monitor.  The filename is sort of           WRITESM.PAS
  127. cryptic for "Write Some" and it will display a    ===============
  128. little output on the monitor.  The program name
  129. is Kitty_Cat which says nothing about the
  130. program itself but can be any identifier we choose.  We still have
  131. the begin and end to define the main program area followed by the
  132. period.  However, now we have two additional statements between the
  133. begin and end.  Writeln is a special word and it is probably not
  134. surprising that it means to write a line of data somewhere. 
  135. Without a modifier, which will be fully explained in due time, it
  136. will write to the default device which, in the case of our IBM
  137. compatible, is the video display.  The data within the parentheses
  138. is the data to be output to the display and although there are many
  139. kinds of data we may wish to display, we will restrict ourselves
  140. to the simplest for the time being.  Any information between
  141. apostrophes will simply be output as text information.
  142.  
  143. The special word Writeln is not a reserved word but is defined by
  144. the system to do a very special job for you, namely to output a
  145. line of data to the monitor.  It is, in fact, a procedure supplied
  146. for you by the writers of TURBO Pascal as a programming aid for
  147. you.  You can, if you so desire, use this name for some other
  148. purpose in your program, but doing so will not allow you to use the
  149. standard output procedure.  It will then be up to you to somehow
  150. get your data out of the program.  
  151. Note carefully that some words are reserved and cannot be redefined
  152. and used for some other purpose, and some are special since they
  153. can be redefined.  You will probably not want to redefine any of
  154. the special words for a long time.  Until you gain considerable
  155. programming experience, simply use them as tools.  
  156.  
  157. Notice the semicolon at the end of line 4.  This is the statement
  158. separator referred to earlier and tells the Pascal compiler that
  159. this line is complete as it stands, nothing more is coming that
  160. could be considered part of this statement.  The next statement,
  161. in line 5, is another statement that will be executed sequentially
  162. following the statement in line 4.  This program will output the
  163. two lines of text and stop.
  164.  
  165. Now it is time to go try it.  Compile and run the program in the
  166. same manner as you did for the first example program.  You should
  167. see the two lines of text output to the video display every time
  168. you run this program.  When you grow bored of running WRITESM.PAS
  169. let's go on to another example.
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.                                                          Page 2-3
  177.  
  178.                             Chapter 2 - Getting Started in Pascal
  179.  
  180. ANOTHER PROGRAM WITH MORE OUTPUT
  181. _________________________________________________________________
  182.  
  183. Examine the example program named WRITEMR.PAS.    ===============
  184. This new program has three lines of output but      WRITEMR.PAS
  185. the first two are different because another       ===============
  186. special word is introduced to us, namely Write. 
  187. Write is a procedure which causes the text to be
  188. output in exactly the same manner as Writeln, but Write does not
  189. cause a carriage return to be output.  Writeln causes its output
  190. to take place then returns the "carriage" to the first character
  191. of the next line.  The end result is that all three of the lines
  192. of text will be output on the same line of the monitor when the
  193. program is run.  Notice that there is a blank at the end of each
  194. of the first two lines so that the formatting will look nice. 
  195. Compile and execute the new program.
  196.  
  197. Now might be a good time for you to return to editing WRITEMR.PAS
  198. and add a few more output commands to see if they do what you think
  199. they should do.  When you tire of that, we will go on to the next
  200. file and learn about comments within a Pascal program.
  201.  
  202.  
  203. ADDING COMMENTS IN THE PROGRAM
  204. _________________________________________________________________
  205.  
  206. The file named PASCOMS.PAS is similar to the      ===============
  207. others except that comments have been added to      PASCOMS.PAS
  208. illustrate their use.  Pascal defines comments    ===============
  209. as anything between (* and *) or anything
  210. between { and }.  Originally only the wiggly
  211. brackets were defined, but since many keyboards didn't have them
  212. available, the parenthesis star combination was defined as an
  213. extension and is universal by now, so you can use either.  Most of
  214. the comments are self explanatory except for the one within the
  215. code.  Since comments can go from line to line, lines 11 and 12
  216. that would normally print "send money", are not Pascal code but are
  217. commented out.  Try compiling and running this program, then edit
  218. the comments out so that "send money" is printed also.
  219.  
  220. A fine point should be mentioned here.  Even though some compilers
  221. allow comments to start with (* and end with }, or to start with
  222. { and end with *), it is very poor programming practice and should
  223. be discouraged.  The ANSI Pascal standard allows such usage but
  224. TURBO Pascal does not allow this funny use of comment delimiters.
  225.  
  226. TURBO Pascal does not allow you to nest comments using the same
  227. delimiters but it does allow you to nest one type within the other. 
  228. This could be used as a debugging aid.  If you generally use the
  229. (* and *) for comments, you could use the { and } in TURBO Pascal
  230. to comment out an entire section of code during debugging even if
  231. it had a few comments in it.  This is a trick you should remember
  232. when you reach the point of writing programs of significant size.
  233.  
  234.  
  235.                                                          Page 2-4
  236.  
  237.                             Chapter 2 - Getting Started in Pascal
  238.  
  239. When you have successfully modified and run the program with
  240. comments, we will go on to explain good formatting practice and how
  241. Pascal actually searches through your source file (Pascal program)
  242. for its executable statements.
  243.  
  244. It should be mentioned that the program named PASCOMS.PAS does not
  245. indicate good commenting style.  The program is meant to illustrate
  246. where and how comments can be used and looks very choppy and
  247. unorganized.  Further examples will illustrate good use of comments
  248. to you as you progress through this tutorial.
  249.  
  250.  
  251. THE RESULT OF EXECUTION SECTION
  252. _________________________________________________________________
  253.  
  254. You should now be able to discern the purpose for lines 20 through
  255. 26 of this program.  Each of the example programs in this tutorial
  256. lists the result of execution in a similar comments section at the
  257. end of the program.  This makes it possible to study this tutorial
  258. anywhere once you print out the example programs as described in
  259. the READ.ME file on the distribution disk.  With this text, and a
  260. hard copy of the example programs containing the result of
  261. execution, you do not need access to a computer to study.  Of
  262. course you would need access to a computer to write, compile, and
  263. execute the programming exercises, which you are heartily
  264. encouraged to do.
  265.  
  266.  
  267.  
  268. GOOD FORMATTING PRACTICE
  269. _________________________________________________________________
  270.  
  271. Examine GOODFORM.PAS to see an example of good   ================
  272. formatting style.  It is important to note that    GOODFORM.PAS
  273. Pascal doesn't give a hoot where you put         ================
  274. carriage returns or how many blanks you put in
  275. when a blank is called for as a delimiter. 
  276. Pascal only uses the combination of reserved words and end-of-
  277. statement semicolons to determine the logical structure of the
  278. program.  Since we have really only covered two executable
  279. statements, I have used them to build a nice looking program that
  280. can be easily understood at a glance.  Compile and run this program
  281. to see that it really does what you think it should do. 
  282.  
  283.  
  284.  
  285. VERY POOR FORMATTING PRACTICE
  286. _________________________________________________________________
  287.  
  288. Examine UGLYFORM.PAS now to see an example of    ================
  289. terrible formatting style.  It is not really       UGLYFORM.PAS
  290. apparent at a glance but the program you are     ================
  291. looking at is exactly the same program as the
  292. last one.  Pascal doesn't care which one you ask
  293.  
  294.                                                          Page 2-5
  295.  
  296.                             Chapter 2 - Getting Started in Pascal
  297.  
  298. it to run because to Pascal, they are identical.  To you they are
  299. considerably different, and the second one would be a mess to try
  300. to modify or maintain sometime in the future.
  301.  
  302. UGLYFORM.PAS should be a good indication to you that Pascal doesn't
  303. care about programming style or form.  Pascal only cares about the
  304. structure, including reserved words and delimiters such as blanks
  305. and semicolons.  Carriage returns are completely ignored as are
  306. extra blanks.  You can put extra blanks nearly anywhere except
  307. within reserved words or variable names.  You should pay some
  308. attention to programming style but don't get too worried about it
  309. yet.  It would be good for you to simply use the style illustrated
  310. throughout this tutorial until you gain experience with Pascal. 
  311. As time goes by you will develop a style of statement indentation,
  312. adding blank lines for clarity, and a method of adding clear
  313. comments to Pascal source code.  Programs are available to read
  314. your source code, and put it in a "pretty" format, but that is not
  315. important now.
  316.  
  317. Not only is the form of the program important, the names used for
  318. variables can be very helpful or hindering as we will see in the
  319. next chapter.  Feel free to move things around and modify the
  320. format of any of the programs we have covered so far and when you
  321. are ready, we will start on variables in the next chapter.  Be sure
  322. you compile and execute UGLYFORM.PAS.
  323.  
  324.  
  325. PROGRAMMING EXERCISES
  326. _________________________________________________________________
  327.  
  328. 1.   Write a program that displays your name on the video monitor. 
  329.  
  330. 2.   Modify your program to display your name and address on one
  331.      line, then modify it by changing the Write's to Writeln's so
  332.      that the name and address are on different lines.
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.                                                          Page 2-6
  354.